home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / SPX30.ZIP / SPX_INT.ZIP / SPX_VGA.INT < prev    next >
Encoding:
Text File  |  1994-06-10  |  5.2 KB  |  140 lines

  1. Unit spx_vga;
  2.  
  3. {$X+,O+ }
  4. { SPX Library Version 3.0  Copyright 1994 Scott D. Ramsay }
  5.  
  6. Interface
  7.  
  8. {$IFNDEF Windows }
  9. Uses dos,spx_dos,spx_obj,spx_fnc;
  10. {$ELSE }
  11. Uses Windos,spx_dos,spx_obj,spx_fnc;
  12. {$ENDIF }
  13.  
  14. const
  15.   MaxPages   = 8;
  16.   WinMinX    : integer = 0;
  17.   WinMinY    : integer = 0;
  18.   WinMaxX    : integer = 319;
  19.   WinMaxY    : integer = 199;
  20.   cclip_out  : boolean = false;
  21.   NormalPut  = 0;
  22.   CopyPut    = 0;
  23.   XORPut     = 1;
  24.   OrPut      = 2;
  25.   AndPut     = 3;
  26.   initproc   : pointer = nil;
  27. { Image loding constants }
  28.   img_noerror   = 0;    { no error }
  29.   img_notbmp    = 1;    { not a win3.0 BMP file }
  30.   img_notpcx    = 2;    { not a 256 color PCX file }
  31.   img_errorload = 3;    { file not found or open error }
  32.   img_errorread = 4;    { other disk read error }
  33.   img_badcolor  = 5;    { not a 256 color BMP file }
  34.   img_errorsave = 6;    { error saving PTR file }
  35.   img_erralloc  = 7;    { memory allocation error }
  36.  
  37. type
  38.   vsphooktype=procedure;
  39.   RGBType    = record
  40.                  red,green,blue : byte;
  41.                end;
  42.   RGBlist    = array[0..255] of RGBType;
  43.   PtrRec     = record
  44.                  ofs,seg : word;
  45.                end;
  46.   VidHdrType = record
  47.                  position,count : word;
  48.                end;
  49.   Ppt        = ^Tpt;
  50.   Tpt        = object(Tobjs)
  51.                  x,y : integer;
  52.                  constructor init(px,py:integer);
  53.                end;
  54.   Ppoly      = ^Tpoly;
  55.   Tpoly      = object
  56.                  phead,ptail : plist;
  57.                  points      : integer;
  58.                  constructor init;
  59.                  procedure addpoint(px,py:integer);virtual;
  60.                  function numpoints:integer;virtual;
  61.                  destructor done;virtual;
  62.                end;
  63.  
  64. var
  65.   PrevMode,                                      { previous mode }
  66.   crpg          : byte;                          { current page number }
  67.   scnseg,scnofs : word;                          { current page address }
  68.   pages         : array[1..MaxPages] of pointer; { page pointers }
  69.   thdmat        : set of byte;
  70.   vspcnt,                                        { vsp last load count }
  71.   maxpage       : word;                          { pages used }
  72.   rgb256,                                        { palette for loaded images }
  73.   zdc           : RGBlist;                       { all black palette }
  74.   YOff          : array[0..199] of word;         { Row offset table }
  75.   vsphookproc   : vsphooktype;
  76.  
  77. procedure VSinc;
  78. procedure SetDefaultColors;
  79. procedure Switch(var a,b:integer);
  80. procedure Parse(var x,y:integer);
  81. procedure SetPtr(var i:PtrRec;var buff);
  82. function pt(x,y:integer):word;
  83. procedure OpenMode(npages:byte);
  84. function Point(x,y:integer;pg:byte):byte;
  85. procedure Pset(x,y:integer;n:byte);
  86. procedure fPcopy(var from,too);
  87. procedure Pcopy(from,too:byte);
  88. procedure CopyRect(x1,y1,x2,y2:integer;var from,too);
  89. procedure fwCopyRect(x1,y1,x2,y2:integer;var from,too);
  90. procedure SwapRect(x1,y1,x2,y2:integer;from,too:byte);
  91. procedure Line_clip(x1,y1,x2,y2:integer;n:byte);
  92. procedure Line(x1,y1,x2,y2:integer;n:byte);
  93. procedure Bar(x1,y1,x2,y2:integer;n:byte);
  94. procedure TranslateBox(x1,y1,x2,y2:integer;var table);
  95. procedure Rectangle(x1,y1,x2,y2:integer;n:byte);
  96. procedure Circle(x1,y1,r:integer;n:byte);
  97. procedure Ellipse(xc,yc,a0,b0:integer;c:byte);
  98. procedure cls(b:byte);
  99. procedure CloseMode;
  100. function BuffSize(x,y:integer):word;
  101. function ImageSize(var image):word;
  102. procedure ImageDims(var image;var x,y:integer);
  103. procedure SetPageActive(page:byte);
  104. procedure GetColor(num:byte;var red,green,blue:byte);
  105. procedure SetColor(num,red,green,blue:byte);
  106. procedure fSetColors(var colors);
  107. procedure fGetColors(var colors);
  108. procedure FadeIn(steps:word;var color);
  109. procedure FadeOut(steps:word;var color);
  110. procedure ColorsChange(var color:rgblist;filter:rgbtype);
  111. procedure ColorCycle(var colors:rgblist;start:byte;count:integer;fwd:boolean);
  112. function LoadColors(filename:string;var colors):integer;
  113. function SaveColors(filename:string;var colors;raw:boolean):integer;
  114. procedure LightColor(var color:RGBtype;percent:byte);
  115. procedure DarkColor(var color:RGBtype;percent:byte);
  116. procedure CreateDarkTable(var colors;var dktable;percent:integer);
  117. procedure CreateLightTable(var colors;var ltable;percent:integer);
  118. procedure Paint(x,y:integer;n:byte);
  119. procedure CopyTo(x1,y1,x2,y2,x,y:integer;var from,too);
  120. function LoadVSP(fn:string;var buff):integer;
  121. function FileVSP(var fil:file;var buff;size:longint):integer;
  122. function AnalyzeScreen:byte;
  123. procedure MemWrite(var source,dest;size:word;var off:longint);
  124. procedure MemRead(var source,dest;size:word;var off:longint);
  125. procedure fwput(x1,y1:integer;var image);
  126. procedure moveDW(var source,dest;size:word);
  127. procedure fputDW(x:word;var buff);
  128. procedure PcopyDW(var from,too);
  129. procedure fillDW(var dest;c:word;v:byte);
  130. procedure clsDW(c:byte);
  131. procedure fhLine(x1,x2,y:integer;c:byte);
  132. procedure FillPoly(offx,offy:integer;poly:Tpoly;c:byte);
  133. procedure DrawPoly(offx,offy:integer;poly:Tpoly;c:byte);
  134. procedure drawptr(var p;merge:boolean;sz:longint);
  135. function loadPTR(fn:string;merge:boolean):integer;
  136. function savePTR(fn:string):integer;
  137. procedure setclip(x1,y1,x2,y2:integer);
  138. procedure resetclip;
  139.  
  140.